PowerVM Lx86

PowerVM Lx86
Developer(s) IBM
Initial release 2008
Stable release 1.3.2 / October 30, 2009 (2009-10-30)
Written in C++
Operating system Linux
Platform IBM System p
Type Virtualization
License Proprietary
Website PowerVM Lx86

PowerVM Lx86 is a binary translation layer for IBM's System p servers. It enables 32-bit x86 Linux binaries to run unmodified on the Power Architecture based hardware. IBM is relying on this feature to migrate x86 Linux servers to the PowerVM virtualized environment and is supported on all POWER5 and POWER6 hardware as well as BladeCenter JS21 and JS22 systems.

In contrast to regular emulators only the instructions are translated, not the entire system, thus making it fast and flexible. The Lx86 software senses that it is executing x86 code and translates it to PowerPC code at execution, and these instructions are later cached ensuring that the translation process only has to take place once, further reducing the drop in performance usually associated with emulation. Lx86 does not support applications that access hardware directly, like kernel modules. Earlier versions of Lx86 did not run code that makes use of SSE instructions, though as of version 1.3.2 the SSE and SSE2 instruction sets are supported.

The product was at first marketed as System p AVE (System p Application Virtual Environment) and was incorrectly reported as PAVE (Portable Advanced Virtualization Emulator) in the press but the name has since changed to PowerVM Lx86. Lx86 is based on the QuickTransit dynamic translator from Transitive, the same that Apple uses for its Rosetta emulation layer that enables Mac OS X to run unmodified PowerPC binaries on their Intel-based Macintoshes.

References